#f.flush():刷新流的写入缓冲区
import time
"""
(1).调用f.write(),内容并没有真正写入到文件中,而是先积攒到缓冲区
(2).当调用flush()的时候,内容会真正的写入到文件中
(3).这样是为了避免频繁的操作硬盘,导致效率低(积攒到一定的数据,一次性写入文件,提高效率)
"""

# f = open("d://a//hi.txt" , "w" , encoding="utf-8")
#其实f.write就没有把内容写入到文件中  只是放入了缓冲区
#f.flush才是把内容写入到文件中  这个是当文件程序执行完成之后  自动执行的  也可以主动执行
# f.write("您好1,python \n")
# f.write("您好2,python \n")
# f.write("您好3,python \n")
# print("----等待----")
# time.sleep(100000)
# print("---等待end---")


#2.f.close():刷新并关闭此流。也就是f.close()内置的flush功能
# f.close()


#3.with open() as f : 在处理文件对象的时候，子句结束之后,文件会自动关闭
#这样的语法的作用是当程序结束的时候  文件自动关闭 ， 将内容直接推到文件中
with open("d://a//pythons.txt" , "r" , encoding="utf-8") as f:
    lines = f.readlines()
    print("---文件内容---")
    for line in lines:
        print(line , end="")

print("\n文件是否关闭->" , f.closed)

#以前不懂的一个文件，windows和linux的符号的文件，现在知道了  直接使用 / 就可以了
#关于目录分隔符,在windows下面 / 和 //都是可以的,比如d://aaa//bbb/hi.txt 和 d:/aaa/bbb/hi.txt
#linux /root/home/aa.loh  因此建议目录分隔符，为了兼容  linux 和 windows 都使用 /
